// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import * as vscode from 'vscode';
import * as fs from 'fs';
import * as path from 'path';

const cats = {
    'one': 'https://media.giphy.com/media/JIX9t2j0ZTN9S/giphy.gif',
    'two': 'https://source.unsplash.com/random'
};

// // 插件激活
export function activate(context: vscode.ExtensionContext) {

    // 注册 extension.helloWorld 命令
    const disposable = vscode.commands.registerCommand("extension.helloWorld", () => {
        vscode.window.showInformationMessage("Hello World!123");
    });
    // 给插件订阅 helloWorld 命令
    context.subscriptions.push(disposable);

    let currentPanel: vscode.WebviewPanel | undefined = undefined;


    // 编写一个新命令进行通信
    context.subscriptions.push(
        vscode.commands.registerCommand('catCoding.start', () => {
            // 创建并显示一个新的webview
            if (currentPanel) {
                //显示一个目标面板
                currentPanel.reveal(vscode.ViewColumn.One);
            } else {
                currentPanel = vscode.window.createWebviewPanel(
                    'catCoding',// 标识webview的类型。在内部使用
                    '风一样的男子123',// 显示给用户的面板的标题
                    vscode.ViewColumn.One,// 在编辑器列中显示新的webview面板
                    {
                        // 添加js
                        enableScripts: true,
                        retainContextWhenHidden: true
                    }
                );
            }

            currentPanel.webview.html = getWebViewOne();
            //当页面销毁时候
            currentPanel.onDidDispose(
                () => {
                    currentPanel = undefined;
                },
                undefined,
                context.subscriptions
            );
            // // 你可以发送任何JSON序列化数据。
            // panel.webview.postMessage({command: '我是传递过来的数据'});
        })
    );

    // return 的内容可以作为这个插件对外的接口
    return {
        hello() {
            return "hello world123";
        }
    };
}

function getWebViewOne() {

    const distPath = path.join(__dirname, '../../dist/index.html');
    const str= fs.readFileSync(distPath, {encoding: 'utf8'});
    return str;
}


// // 插件释放的时候触发
export function deactivate() {
}

